1. Field of Invention
The application relates generally to network switches, and more particularly to a network switch for determining active frame flows in a network.
2. Description of the Related Art
FIG. 1 illustrates a Fibre Channel network 100. Generally, the network 100 is connected using Fibre Channel connections. For illustrative purposes in FIG. 1, the network 100 includes a fabric 102 comprised of four different switches 110, 112, 114, and 116. It will be understood by one of skill in the art that a Fibre Channel fabric may be comprised of one or more switches.
A variety of devices can be connected to the fabric 102. A Fibre Channel fabric supports both point-to-point and loop device connections. A point-to-point connection is a direct connection between a device and the fabric. A loop connection is a single fabric connection that supports one or more devices in an “arbitrated loop” configuration, where signals travel around the loop through each of the loop devices. Hubs, bridges, and other configurations may be added to enhance the connections within an arbitrated loop.
On the fabric side, devices are coupled to the fabric via fabric ports. A fabric port (F_Port) supports a point-to-point fabric attachment. A fabric loop port (FL_Port) supports a fabric loop attachment. Both F_Ports and FL_Ports may be referred to generically as Fx_Ports. Typically, ports connecting one switch to another switch are referred to as expansion ports (E_Ports).
On the device side, each device coupled to a fabric constitutes a node. Each device includes a node port by which it is coupled to the fabric. A port on a device coupled in a point-to-point topology is a node port (N_Port). A port on a device coupled in a loop topology is a node loop port (NL_Port). Both N_Ports and NL_Ports may be referred to generically as Nx_Ports. The label N_Port or NL_Port may be used to identify a device, such as a computer or a peripheral, which is coupled to the fabric.
In FIG. 1, fabric 102 includes switches 110, 112, 114 and 116 that are interconnected. Switch 110 is attached to private loop 122, which is comprised of devices 124 and 126. Switch 112 is attached to device 152. A user interface 142 also connects to the fabric 102 via switch 112. Switch 114 is attached to device 170, which has two logical units 172, 174 attached to device 170. Typically, device 170 is a storage device such as a RAID device, which in turn may be logically separated into logical units illustrated as logical units 172 and 174. Alternatively the storage device 170 could be a JBOD (“just a bunch of disks”) device, with each individual disk being a logical unit. Switch 116 is attached to devices 132 and 134, and is also attached to public loop 162, which is formed from devices 166 and 168 being communicatively coupled together.
Aspects of software control of network switches are disclosed in commonly assigned U.S. patent application Ser. No. 11/020,892 entitled “Multicast Transmission Protocol for Fabric Services,” the subject matter of which is hereby incorporated by reference in its entirety. Further, aspects of frame filtering are disclosed in commonly assigned U.S. patent application Ser. No. 10/767,213 entitled “Fibre Channel Zoning Hardware for Directing a Data Packet to an External Processing Device,” the subject matter of which is hereby incorporated by reference in its entirety.
A frame may pass from any source address to any destination address in a fabric, subject to imposed constraints such as zoning restrictions. Such a pair of communicating endpoint network addresses is known as a frame flow (a “flow”). However, particular frame flows may create more traffic across a network than others. For example, during backup of a storage resource (e.g., storage device 170), frame flows including the address of this device are more likely to be encountered and routed on fabric 102. Therefore, determination of which frame flows are present and their activity levels is desirable to detect traffic congestion causes. However, measuring frame flows is extremely difficult. Merely knowing the endpoints is insufficient, as the actual data transfer levels must also be measured. While this is simple in theory, in an actual network, the sheer number of frame flows renders the task difficult, thus limiting control of network congestion.